package ru.ltst.u2020mvp.base.navigation.activity;
import android.app.Activity;
import android.content.Intent;
import android.support.v4.app.ActivityCompat;
import java.security.InvalidParameterException;
import ru.ltst.u2020mvp.base.ActivityConnector;
import ru.ltst.u2020mvp.base.navigation.Screen;
import ru.ltst.u2020mvp.base.navigation.ScreenSwitcher;
public class ActivityScreenSwitcher extends ActivityConnector<Activity> implements ScreenSwitcher {
@Override
public void open(Screen screen) {
final Activity activity = getAttachedObject();
if (activity == null) {
return;
}
if (screen instanceof ActivityScreen) {
ActivityScreen activityScreen = ((ActivityScreen) screen);
Intent intent = activityScreen.intent(activity);
ActivityCompat.startActivity(activity, intent, activityScreen.activityOptions(activity));
} else {
throw new InvalidParameterException("Only ActivityScreen objects allowed");
}
}
@Override
public void goBack() {
final Activity activity = getAttachedObject();
if (activity != null) {
activity.onBackPressed();
}
}
}